function getRandom(a, b) {
    return a + parseInt((b - a + 1) * Math.random());
}

/* 从arr或字符串中随机摘取一个元素 */
function getRandomItem(arr) {
    return arr[getRandom(0, arr.length - 1)];
}

/**
 * 获得随机姓名
 * @returns 随机姓名
 */
function getRandomName() {
    const firstName = "赵钱孙李周吴郑王冯陈楚魏蒋沈韩杨朱秦尤许何吕施章";
    const middleaName = "氢氦锂铍硼碳氮氧氟氖钠镁铝硅磷硫氯氩钾钙";
    const lastName = "一二三四五六七八九十";
    return `${firstName[getRandom(0, firstName.length - 1)]}${
        middleaName[getRandom(0, middleaName.length - 1)]
    }${lastName[getRandom(0, lastName.length - 1)]}`;
}

/**
 * 生成定长的number字符串 例如getLengthedNumStr(1, 4)会生成0001
 * @param {number} num 数字
 * @param {number} len 要生成的字符串的长度
 * @returns 结果字符串
 */
function getLengthedNumStr(num, len) {
    let retStr = "";
    for (let i = 0; i < len - (num + "").length; i++) {
        retStr += "0";
    }
    retStr += num;
    return retStr;
}

/**
 * 返回[start,end]之间的随机整数
 * @param {number} start 最小值
 * @param {number} end 最大值
 * @returns [start,end]之间的随机整数
 */
function getRangeRandom(start, end) {
    return start + Math.round((end - start) * Math.random());
}

/**
 * 将number按指定长度和进制输出
 * @param {number} num 要转换表的数
 * @param {number} len 要输出的长度
 * @param {number} radix 要输出的进制
 * @returns
 */
function getLengthedNumberStr(num, len, radix = 10) {
    var str = num.toString(radix);
    for (var i = 0; i < len - str.length; i++) {
        str = "0" + str;
    }
    return str;
}

/**
 * 得一个十六进制的随机颜色
 * @param {boolean} useHex 是否使用十六进制 默认true 否则使用rgb模式
 * @returns 随机颜色值
 */
function getRandomColor(useHex = true) {
    var red = getRangeRandom(0, 255);
    var green = getRangeRandom(0, 255);
    var blue = getRangeRandom(0, 255);

    if (!useHex) {
        return `rgb(${red},${green},${blue})`;
    } else {
        // red = red.toString(16)
        // green = green.toString(16)
        // blue = blue.toString(16)

        red = getLengthedNumberStr(red, 2, 16);
        green = getLengthedNumberStr(green, 2, 16);
        blue = getLengthedNumberStr(blue, 2, 16);
        console.log(red, green, blue);

        return `#${red}${green}${blue}`;
    }

    function getRandomItem(arr) {
        return arr[Math.floor(Math.random() * arr.length)];
    }
}
